package org.jeecg.modules.kuner.viporderbase.service;

import com.wechat.pay.java.service.payments.jsapi.model.PrepayWithRequestPaymentResponse;
import org.jeecg.modules.kuner.viporderbase.entity.KrVipOrderBase;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.kuner.viporderbase.vo.PlaceOrderVO;

/**
 * @Description: 会员订单
 * @Author: jeecg-boot
 * @Date: 2025-02-19
 * @Version: V1.0
 */
public interface IKrVipOrderBaseService extends IService<KrVipOrderBase> {

    /**
     * 下单
     *
     * @param placeOrderVO 下单必要参数信息
     * @return 下单结果
     */
    KrVipOrderBase placeOrder(PlaceOrderVO placeOrderVO);

    /**
     * 取消订单
     *
     * @param orderId 被取消的订单ID
     */
    void cancelOrder(String orderId);

    /**
     * 拉起微信小程序支付
     *
     * @param orderId 订单ID
     * @return 支付必要的参数信息
     */
    PrepayWithRequestPaymentResponse toPay(String orderId);

    /**
     * 支付成功后续业务
     *
     * @param orderNo 订单号
     */
    void paySuccessLogic(String orderNo);

    /**
     * 根据订单号查询订单信息
     *
     * @param orderNo 订单号
     * @return 查询到的订单信息
     */
    KrVipOrderBase getByOrderNo(String orderNo);

}
